//
// Created by 吴喆 on 2020/3/25.
//

#ifndef SUMMER_BULLETSTATEMACHINE_H
#define SUMMER_BULLETSTATEMACHINE_H

#include "../../engine/Playable.h"

class BulletStateMachine : public StateMachine {
public:
    BulletStateMachine();
};

class BulletLaunchState : public PlayableState {
public:
    PlayableState *update(Playable &playable) override;

    PlayableState *handleInput(Playable &playable, KeyEvent *event) override;

    void initAnimation() override;

    void enter(Playable &playable) override;

};

class BulletOnTheWayState : public PlayableState {
public:
    PlayableState *update(Playable &playable) override;

    void initAnimation() override;

    void enter(Playable &playable) override;

};

class BulletEndState : public PlayableState {
public:
    PlayableState *update(Playable &playable) override;

    void initAnimation() override;

    void enter(Playable &playable) override;
};

#endif //SUMMER_BULLETSTATEMACHINE_H
